package main

/*
* Content: strings中的方法、strconv中的方法
* --------------------------------------------------
* GoLang之标准库strings包: https://blog.csdn.net/weixin_52690231/article/details/123593614
* Go语言strconv包：字符串和数值类型的相互转换: http://c.biancheng.net/view/5112.html
 */

import (
	"fmt"
	"strconv"
	"strings"
)

func MyBagStringsAndStrconv() {

	var str1 string = "hello"
	str2 := "world"

	// strings中的方法
	fmt.Println("--------------------strings中的方法--------------------")

	// 拼接字符串
	str4 := strings.Join([]string{str1, str2}, "---")
	fmt.Printf("strings.Join(): 拼接字符串: %v\n", str4)

	// 查找子串是否在指定的字符串中
	isCon := strings.Contains("xie qing zhao", "qing") //true
	fmt.Printf("strings.Contains(): 是否包含字符串: %v\n", isCon)

	// 返回子串在字符串第一次出现的index值
	strIndex := strings.Index("xie qing zhao", "qing")
	fmt.Printf("strings.Index(): 子字符串的位置: %v\n", strIndex)

	// 字符串分割
	strArr := strings.Split("hello,hello,hello", ",")
	fmt.Println("分割的结果为:", strArr)

	// 转换为大写
	strUpper := strings.ToUpper(str1)
	fmt.Println("hello 转换为大写:", strUpper)

	// 转换为小写
	strLower := strings.ToLower(strUpper)
	fmt.Println("HELLO 转换为小写:", strLower)

	// strconv中的方法
	fmt.Println("--------------------strconv中的方法--------------------")

	// 字符串转整数
	str4_2 := "610"
	res4_2, err := strconv.Atoi(str4_2)
	if err != nil {
		fmt.Println("转换错误", err)
	} else {
		fmt.Printf("strconv.Atoi(): 字符串转整数: %v\n", res4_2)
	}

	// 整数 转 字符串
	int4_3 := 610
	res4_3 := strconv.Itoa(int4_3)
	if err != nil {
		fmt.Println("转换错误", err)
	} else {
		fmt.Printf("strconv.Itoa(): 整数转字符串: %v\n", res4_3)
	}
}
